var chart;
var axisValue = [];
function column(hostArray, ramArray, warningArray, fullArray, pc_name, dateStart, dateEnd){
	calculPeriode(dateStart, dateEnd);
	$(document).ready(function() {
	   chart = new Highcharts.Chart({
	      chart: {
	         renderTo: 'column_container',
	         defaultSeriesType: 'column'
	      },
	      title: {
	         text: 'Détail des anomalies du ' + pc_name + ' sur la période du ' + dateStart + ' au ' + dateEnd
	      },
	      xAxis: {
	         categories: axisValue
	      },
	      yAxis: {
	         min: 0,
	         title: {
	            text: 'Nombre d\'anomalies'
	         }
	      },
	      legend: {
	         layout: 'vertical',
	         backgroundColor: Highcharts.theme.legendBackgroundColor || '#FFFFFF',
	         align: 'left',
	         verticalAlign: 'top',
	         x: 120,
	         y: 60,
	         floating: true,
	         shadow: true
	      },
	      tooltip: {
	         formatter: function() {
	            return '' +
	               this.x + ': ' + this.y + ((this.y < 2) ? ' anomalie' : ' anomalies') + ' de type ' + this.series.name;
	         }
	      },
	      plotOptions: {
	         column: {
	            pointPadding: 0.2,
	            borderWidth: 0,
	            lineWidth: 2
	         }
	      },
	      	series: [{
		         name: 'Host unreachable',
		         data: calculValeur(hostArray)
		   	}, {
		         name: 'RAM saturation',
		         data: calculValeur(ramArray)
	       	}, {
		         name: 'WARNING ! disk almost full',
		         data: calculValeur(warningArray)
	       	}, {
		         name: 'Disk full',
		         data: calculValeur(fullArray)
	        }]
	    });  
	});
}

function calculValeur(tableau){
	var data = [];
	var dateTransform = "";
	var tableauDate = ["jan", "fev", "mar", "avr", "mai", "jui", "jui", "aou", "sep", "oct", "nov", "dec"];
	
	for(var i=0; i < axisValue.length; i++){
		data.push(0);
	}
	for(key in tableau){
		mois = parseInt(key.substr(0,2)) - 1;
		dateTransform = tableauDate[mois] + "-" + key.substr(5,2);
		data[axisValue.indexOf(dateTransform)] = tableau[key];
	}
	return data;
}

function calculPeriode(dateStart, dateEnd){
	var tableauDate = ["jan", "fev", "mar", "avr", "mai", "jui", "jui", "aou", "sep", "oct", "nov", "dec"];
	var moisStartInt = parseInt(dateStart.substr(3,2));
	var moisEndInt = parseInt(dateEnd.substr(3,2));
	var anneeStartInt = parseInt(dateStart.substr(6,4));
	var anneeEndInt = parseInt(dateEnd.substr(6,4));
	var anneeStartIntLittle = parseInt(dateStart.substr(8,4));
	
	var detector = 0;	
	nbAnnee = (anneeEndInt - anneeStartInt);
	
	for(var i = 0; i <= nbAnnee; i++){
		if(i <= 1){
			anneeStartIntLittle += i;
		} else{
			anneeStartIntLittle += 1;
		}
		
		if(detector == 0){
			moisTravailStart = moisStartInt;
			if(nbAnnee == 0){
				moisTravailEnd = moisEndInt;
			} else{
				moisTravailEnd = 12;
			}
			detector += 1;
		}
		for(var mois = moisTravailStart; mois <= moisTravailEnd; mois++){
			if(nbAnnee == i){
				moisTravailEnd = moisEndInt;
			} else{
				moisTravailEnd = 12;
			}
			if(mois == 12){
				moisTravailStart = 1;
			}
			axisValue.push(tableauDate[mois - 1] + "-" + anneeStartIntLittle);
		}
	}
}


//Fonction déprécier => Have Fun
function calculNbMois(moisStartInt, moisEndInt, anneeStartInt, anneeEndInt){
	var nbMois = 0;
	var nbAnnee = (anneeEndInt - anneeStartInt);
	if(nbAnnee == 0){
		nbMois = moisEndInt - moisStartInt;
	} else if (nbAnnee > 0){
		nbMois = ((12 - moisStartInt) + 1) + moisEndInt + ((nbAnnee - 1) * 12);
	} else{
		nbMois = 0;
	}
	return nbMois;
}
